Platform Explorer / Nuxeo Platform 2023.22

Component org.nuxeo.apidoc.snapshot.SnapshotManagerComponent

Documentation

This component handles the introspection of the current live Runtime as a distribution.

It can also persist this introspection as Nuxeo documents, to handle import and export of external distributions.

Resolution Order

46
The resolution order represents the order in which this component has been resolved by the Nuxeo Runtime framework.
You can influence this order by adding "require" tags in your component declaration, to make sure it is resolved after another component.

Start Order

778
The start order represents the order in which this component has been started by the Nuxeo Runtime framework.
This number is interesting to tweak if your Java component interacts with other components, and needs to be started before or after another one.
It can be changed by implementing the method "Component#getApplicationStartedOrder()" on your Java component: components are sorted according to this reference value, in increasing order.
The default value is 1000, and the repository initialization uses number 100. Negative values can also be used.

Implementation

Class: org.nuxeo.apidoc.snapshot.SnapshotManagerComponent

Services

Extension Points

Contributions

XML Source

<?xml version='1.0' encoding='UTF-8'?>
<component name="org.nuxeo.apidoc.snapshot.SnapshotManagerComponent">
  <documentation>
    <p>
      This component handles the introspection of the current live Runtime as a distribution.
    </p>
    <p>
      It can also persist this introspection as Nuxeo documents, to handle import and export of external distributions.
    </p>
  </documentation>
  <implementation class="org.nuxeo.apidoc.snapshot.SnapshotManagerComponent"/>

  <service>
    <provide interface="org.nuxeo.apidoc.snapshot.SnapshotManager"/>
    <provide interface="org.nuxeo.apidoc.snapshot.SnapshotListener"/>
    <provide interface="org.nuxeo.apidoc.search.ArtifactSearcher"/>
  </service>

  <extension-point name="plugins">
    <documentation>
      <p>
        A plugin can introspect and persist information related to the current runtime environment.
      </p>
      <p>
        Sample contribution:
        <code>
          <extension target="org.nuxeo.apidoc.snapshot.SnapshotManagerComponent" point="plugins">
            <plugin id="seam" class="org.nuxeo.apidoc.seam.plugin.SeamPlugin" snapshotClass="org.nuxeo.apidoc.seam.introspection.SeamRuntimeSnapshot">
              <ui>
                <label>Seam Components</label>
                <viewType>seam</viewType>
                <homeView>listSeamComponents</homeView>
                <styleClass>seam</styleClass>
              </ui>
            </plugin>
          </extension>
        </code>
      </p>
      <p>
        The class should implement the
        <b>org.nuxeo.apidoc.plugin.Plugin</b>
        interface.
      </p>
      <p>
        UI elements are used for rendering on webengine pages. The view type should match a webengine resource type,
        and
        the module holding this resource should be contributed to the main webengine module as a fragment using:
        <code>
          Fragment-Host: org.nuxeo.apidoc.webengine
        </code>
      </p>
    </documentation>
    <object class="org.nuxeo.apidoc.plugin.PluginDescriptor"/>
  </extension-point>

  <extension-point name="exporters">
    <documentation>
      Extension point for pluggable export generation.
    </documentation>
    <object class="org.nuxeo.apidoc.export.api.ExporterDescriptor"/>
  </extension-point>

  <extension target="org.nuxeo.apidoc.snapshot.SnapshotManagerComponent" point="exporters">
    <exporter id="jsonGraph" class="org.nuxeo.apidoc.export.graphs.plugins.JsonGraphExporter">
      <title>Json Graph</title>
      <description>Json dependency graph</description>
      <filename>graph.json</filename>
      <mimetype>application/json</mimetype>
      <display>
        <on>home</on>
        <on>bundle</on>
        <on>package</on>
      </display>
    </exporter>
    <exporter id="jsonContributionStats" class="org.nuxeo.apidoc.export.stats.JsonContributionStatsExporter">
      <title>Json Contribution Stats</title>
      <description>Json statistics for contributions</description>
      <filename>contribution_stats.json</filename>
      <mimetype>application/json</mimetype>
      <display>
        <on>home</on>
        <on>bundle</on>
        <on>package</on>
        <on>chart</on>
      </display>
      <properties>
        <property name="scriptingCodeType">
          org.nuxeo.automation.scripting.internals.AutomationScriptingComponent--operation
        </property>
        <property name="javaCodeType">
          org.nuxeo.ecm.core.operation.OperationServiceComponent--operations,
          org.nuxeo.apidoc.snapshot.SnapshotManagerComponent--exporters
        </property>
      </properties>
    </exporter>
    <exporter id="csvContributionStats" class="org.nuxeo.apidoc.export.stats.CSVContributionStatsExporter">
      <title>CSV Contribution Stats</title>
      <description>CSV statistics for contributions</description>
      <filename>contribution_stats.csv</filename>
      <mimetype>text/csv</mimetype>
      <display>
        <on>home</on>
        <on>bundle</on>
        <on>package</on>
      </display>
      <properties>
        <property name="scriptingCodeType">
          org.nuxeo.automation.scripting.internals.AutomationScriptingComponent--operation
        </property>
        <property name="javaCodeType">
          org.nuxeo.ecm.core.operation.OperationServiceComponent--operations,
          org.nuxeo.apidoc.snapshot.SnapshotManagerComponent--exporters
        </property>
      </properties>
    </exporter>
    <exporter id="dotGraph" class="org.nuxeo.apidoc.export.graphs.plugins.DOTGraphExporter">
      <title>DOT Graph</title>
      <description>Dependency graph exported in DOT format</description>
      <filename>graph.dot</filename>
      <mimetype>application/octet-stream</mimetype>
      <display>
        <on>home</on>
      </display>
    </exporter>
  </extension>

  <extension target="org.nuxeo.runtime.ConfigurationService" point="configuration">
    <documentation>
      URL base for Javadoc Links.
    </documentation>
    <property name="org.nuxeo.apidoc.javadoc.url">
      https://community.nuxeo.com/api/
    </property>
  </extension>

  <extension target="org.nuxeo.runtime.ConfigurationService" point="configuration">
    <documentation>
      URL base for Connect Links (for Marketplace Packages).
    </documentation>
    <property name="org.nuxeo.apidoc.connect.url">
      https://connect.nuxeo.com/nuxeo/site/
    </property>
  </extension>

  <extension target="org.nuxeo.runtime.ConfigurationService" point="configuration">
    <documentation>
      Default groups for application managers and readers.
    </documentation>
    <property name="org.nuxeo.apidoc.apidocmanagers.group">
      ApidocManagers
    </property>
    <property name="org.nuxeo.apidoc.apidocreaders.group">
      Everyone
    </property>
  </extension>

  <extension target="org.nuxeo.runtime.ConfigurationService" point="configuration">
    <documentation>
      Properties controlling sensitive configuration exposure, when extracted from runtime contributions by
      explorer logics.

      @since 20.0.0
    </documentation>
    <property name="org.nuxeo.apidoc.secure.xml.keywords">
      password, Password, secret, apiKey, TMPDIR, TMP, TEMP, TEMPDIR
    </property>
    <property name="org.nuxeo.apidoc.secure.xml.keywords.whitelisted">
      passwordField, passwordHashAlgorithm
    </property>
  </extension>

</component>